#![allow(
  clippy::cognitive_complexity,
  clippy::large_enum_variant,
  clippy::module_inception,
  clippy::needless_doctest_main
)]
#![warn(
  missing_debug_implementations,
  // missing_docs,
  rust_2018_idioms,
  unreachable_pub
)]
#![deny(unused_must_use)]
#![doc(test(no_crate_inject, attr(deny(warnings, rust_2018_idioms), allow(dead_code, unused_variables))))]

//!
//! # Rust
//!```rust
//! fn main() -> e_utils::AnyResult<()> {
//!   if e_app::input::Opts::check_empty() {
//!     let _ = app::MyApp::launch()?;
//!   } else {
//!     let opts = e_app::input::Opts::new(None as Option<Vec<String>>)?;
//!     let res = e_app::input::api(opts)?;
//!     println!("{}", res.to_str()?);
//!   }
//!   Ok(())
//! }
//! ```

/// MACROS
#[macro_use]
mod macros;

/// Cmd input
pub mod input;

/// Share
#[path = "./share.rs"]
pub mod share;

#[cfg(windows)]
pub mod win;
#[cfg(windows)]
pub use win::*;

#[cfg(target_os = "linux")]
pub mod linux;
#[cfg(target_os = "linux")]
pub use linux::*;

#[cfg(feature = "disk-info")]
pub mod disk_info;
pub mod ty;
